Telegram Group & Telegram Channel
🖥 Задача (с подвохом). Что выведет этот код?


def extend_list(val, lst=[]):
lst.append(val)
return lst

# Первый вызов: используем список по умолчанию
list1 = extend_list(10)
# Второй вызов: передаём новый пустой список
list2 = extend_list(123, [])
# Третий вызов: снова используем список по умолчанию
list3 = extend_list('a')

print('list1 =', list1)
print('list2 =', list2)
print('list3 =', list3)

🧩 Решение

Механика дефолтного списка
В сигнатуре функции lst=[] создаётся один список при определении функции и затем переиспользуется во всех вызовах, где lst не передан.

Первый вызов

```python
list1 = extend_list(10)
lst не передан → берётся дефолтный список.

Добавляем 10.
⇒ list1 становится [10].
```p
Второй вызов

```python
list2 = extend_list(123, [])```

Передаём новый пустой список [].

В него добавляется 123.
⇒ list2 становится [123].

Третий вызов

```python
list3 = extend_list('a')```

Опять не передан
lst → используется тот же дефолтный список, куда уже был добавлен 10.

Добавляем 'a'.
⇒ дефолтный список становится [10, 'a'], и list3 тоже ссылается на [10, 'a'].

Итоговый вывод программы:

```python
list1 = [10, 'a']
list2 = [123]
list3 = [10, 'a']```

Обратите внимание, что
list1 и list3 — это один и тот же дефолтный список, поэтому изменения сохраняются между вызовами.

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM



tg-me.com/pythonl/4789
Create:
Last Update:

🖥 Задача (с подвохом). Что выведет этот код?


def extend_list(val, lst=[]):
lst.append(val)
return lst

# Первый вызов: используем список по умолчанию
list1 = extend_list(10)
# Второй вызов: передаём новый пустой список
list2 = extend_list(123, [])
# Третий вызов: снова используем список по умолчанию
list3 = extend_list('a')

print('list1 =', list1)
print('list2 =', list2)
print('list3 =', list3)

🧩 Решение

Механика дефолтного списка
В сигнатуре функции lst=[] создаётся один список при определении функции и затем переиспользуется во всех вызовах, где lst не передан.

Первый вызов

```python
list1 = extend_list(10)
lst не передан → берётся дефолтный список.

Добавляем 10.
⇒ list1 становится [10].
```p
Второй вызов

```python
list2 = extend_list(123, [])```

Передаём новый пустой список [].

В него добавляется 123.
⇒ list2 становится [123].

Третий вызов

```python
list3 = extend_list('a')```

Опять не передан
lst → используется тот же дефолтный список, куда уже был добавлен 10.

Добавляем 'a'.
⇒ дефолтный список становится [10, 'a'], и list3 тоже ссылается на [10, 'a'].

Итоговый вывод программы:

```python
list1 = [10, 'a']
list2 = [123]
list3 = [10, 'a']```

Обратите внимание, что
list1 и list3 — это один и тот же дефолтный список, поэтому изменения сохраняются между вызовами.

@pythonl

BY Python/ django




Share with your friend now:
tg-me.com/pythonl/4789

View MORE
Open in Telegram


Python django Telegram | DID YOU KNOW?

Date: |

Find Channels On Telegram?

Telegram is an aspiring new messaging app that’s taking the world by storm. The app is free, fast, and claims to be one of the safest messengers around. It allows people to connect easily, without any boundaries.You can use channels on Telegram, which are similar to Facebook pages. If you’re wondering how to find channels on Telegram, you’re in the right place. Keep reading and you’ll find out how. Also, you’ll learn more about channels, creating channels yourself, and the difference between private and public Telegram channels.

At a time when the Indian stock market is peaking and has rallied immensely compared to global markets, there are companies that have not performed in the last 10 years. These are definitely a minor portion of the market considering there are hundreds of stocks that have turned multibagger since 2020. What went wrong with these stocks? Reasons vary from corporate governance, sectoral weakness, company specific and so on. But the more important question is, are these stocks worth buying?

Python django from ye


Telegram Python/ django
FROM USA